package top.ltc_cn.minecraft_manager.dto;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import lombok.Data;

/**
 * OAuth2令牌响应封装类。
 * 包含访问令牌、刷新令牌及其相关信息。
 */
@Data
public class Oauth2TokenResponse {

    /**
     * 响应码：200 表示成功
     */
    private int code;

    /**
     * 响应消息：如 "ok"
     */
    private String msg;

    /**
     * 数据体，预留字段
     */
    private Object data;

    /**
     * 令牌类型，如 bearer
     */
    private String token_type;

    /**
     * 访问令牌值
     */
    private String access_token;

    /**
     * 刷新令牌值（敏感信息）
     */
    private String refresh_token;

    /**
     * Access-Token 剩余有效期，单位秒
     */
    private long expires_in;

    /**
     * Refresh-Token 剩余有效期，单位秒
     */
    private long refresh_expires_in;

    /**
     * 应用 ID
     */
    private String client_id;

    /**
     * 此令牌包含的权限范围
     */
    private String scope;

    /**
     * 覆盖 toString 方法，避免敏感信息泄露
     */
    @Override
    public String toString() {
        return "Oauth2TokenResponse{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                ", tokenType='" + token_type + '\'' +
                ", accessToken=***" +
                ", refreshToken=***" +
                ", expiresIn=" + expires_in +
                ", refreshExpiresIn=" + refresh_expires_in +
                ", clientId='" + client_id + '\'' +
                ", scope='" + scope + '\'' +
                '}';
    }
}
